/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Prolog;

import Herramientas.Conversor;
import java.util.StringTokenizer;

/**
 *
 * @author Usuario
 */
public class Analizador {

    public static Resultado tratarRespuestaProlog(String s){
        Resultado res = new Resultado();
        System.out.println("Trato: "+s);
        java.util.StringTokenizer st = new java.util.StringTokenizer(s, " ");
        String tipo = "";
        if( st.hasMoreTokens() )
            tipo = st.nextToken();
        
        if(tipo.equalsIgnoreCase("Movimiento")){
            res = new Resultado(Resultado.movInvalido);
        }
        else{
            st.nextToken(); // Número de consulta
            res = Analizador.obtenerMovimiento(st.nextToken());
        }

        return res;
    }


    private static Resultado obtenerMovimiento(String mov){
            System.out.println("Mov: "+mov);
            int it = 0;
            char c = mov.charAt(it);
            it++;
            // Letras -> Y
            // Numeros -> X = 8 - numero

            if( esPieza(c) ){
                c = mov.charAt(it);
                it++;
            }
            // Buscar la pieza

            int initY = Conversor.letraToIntCol(String.valueOf(c));

            c = mov.charAt(it);
            it++;
            int initX = 8 - Integer.parseInt(Character.toString(c));

            c = mov.charAt(it);
            it++;

            boolean captura = false;
            if( c == 'x' ){ // Marcamos la captura para el brazo
                captura = true;
                c = mov.charAt(it);
                it++;
            }

            int finY = Conversor.letraToIntCol(String.valueOf(c));

            c = mov.charAt(it);
            it++;
            int finX = 8 - Integer.parseInt(Character.toString(c));

            return new Resultado(Resultado.movValido, initX, initY, finX, finY, captura);
        

//        return new Resultado();
    }

    private static boolean esPieza(char c){
        if( c == 'K' || c == 'Q' || c == 'N' || c == 'B' || c == 'R' )
            return true;

        else return false;
    }

//    private


}
